package comOss

import (
	"fmt"
	"github.com/aliyun/alibaba-cloud-sdk-go/services/sts"
	"log"
	"time"
)

type OSS struct {
	Address         string `json:"address"`
	Bucket          string
	AccessKeyID     string
	AccessKeySecret string
	RoleArn         string
	RoleSessionName string
	Pint            string
}

func GetOssResponse(Config OSS) (*sts.AssumeRoleResponse, error) {
	// 构建一个阿里云客户端, 用于发起请求。
	client, err := sts.NewClientWithAccessKey(Config.Address, Config.AccessKeyID, Config.AccessKeySecret)
	if err != nil {
		log.Fatalf("Error creating Alibaba Cloud STS client: %v", err)
		return nil, err
	}

	// 构建请求对象。
	request := sts.CreateAssumeRoleRequest()
	request.Scheme = "https"

	// 设置参数。关于参数含义和设置方法，请参见《API参考》。
	request.RoleArn = Config.RoleArn                 // 角色ARN
	request.RoleSessionName = Config.RoleSessionName // RAM角色名称

	gmt := time.FixedZone("GMT", 0) // 创建一个名为 GMT 的时区，偏移量为 0，即 UTC 时间

	// 获取当前时间，并转换为 GMT（UTC）时区
	formatted := time.Now().In(gmt).Format("2006-01-02T15:04:05Z")

	// 输出格式化后的时间
	fmt.Println(formatted)

	// 发起请求，并得到响应。
	response, err := client.AssumeRole(request)
	if err != nil {
		log.Fatalf("Error assuming role: %v", err)
		return nil, err
	}

	return response, nil
}
